package System_;

public class SystemDemo02 {
    public static void main(String[] args) {
        //判断1~100000之间有多少个质数
        //算法一
        long start = System.currentTimeMillis();

        for (int i = 0; i < 100000; i++) {
            boolean flag = isPrime1(i);
            if(flag){
                //System.out.println(i);
            }
        }

        long end = System.currentTimeMillis();

        //获取程序运行的总时间

        System.out.println("方法1运行的总时间为："+(end-start)+"毫秒");
        //算法二
        start = System.currentTimeMillis();

        for (int i = 0; i < 100000; i++) {
            boolean flag = isPrime2(i);
            if(flag){
                //System.out.println(i);
            }
        }

        end = System.currentTimeMillis();

        //获取程序运行的总时间
        System.out.println("方法2运行的总时间为："+(end-start)+"毫秒");
    }

    //优化算法之前判断是否为质数的方式
    public static boolean isPrime1(int num){
        for (int i = 2; i < num; i++) {
            if(num % i == 0)
                return  false;
        }
        return true;
    }

    //优化算法之后判断是否为质数的方式
    public static boolean isPrime2(int num){
        for (int i = 2; i < Math.sqrt(num); i++) {
            if(num % i == 0)
                return  false;
        }
        return true;
    }
}
